package beautiful.butterfly.distributed_task_processing_engine.task_manage.task_data_items_processor;

/**
 * 一个任务项一个处理器
 */
public interface ITaskDataItemProcessor
{

    /**
     * 清除所有已经取到内存中的数据,在心跳线程失败的时候调用,避免数据重复
     */
    public void clearTaskDataItemList();

    /**
     * 是否已经处理完内存中所有的数据,在进行队列切换的时候,必须保证所有内存的数据处理完毕
     */
    public boolean runningTaskItemListIsAllFinshed();

    /**
     * 判断进程是否处于休眠状态
     */
    public boolean isSleeping();

    /**
     * 停止任务处理器,调用这个方法后会进行资源的清理,线程在看到这个标志后会停止运行.
     */
    public void setStopScheduleFlagAndClearTaskList() throws Exception;

}
